// 验证BarPosition类型修复的脚本
const fs = require('fs');
const path = require('path');

const filePath = path.join(__dirname, 'entry', 'src', 'main', 'ets', 'pages', 'Index.ets');

try {
  const content = fs.readFileSync(filePath, 'utf8');
  
  console.log('=== BarPosition 类型修复验证 ===\n');
  
  // 检查是否已导入BarPosition和TabsController
  const hasImports = /import.*BarPosition.*TabsController/.test(content);
  console.log(`是否已导入BarPosition和TabsController: ${hasImports ? '是 ✅' : '否 ❌'}`);
  
  // 检查是否已声明tabsController属性
  const hasTabsController = /private\s+tabsController:\s+TabsController\s*=\s*new\s+TabsController\(\);/.test(content);
  console.log(`是否已声明tabsController属性: ${hasTabsController ? '是 ✅' : '否 ❌'}`);
  
  // 检查Tabs组件是否使用BarPosition.End枚举
  const hasBarPositionEnd = /Tabs\(\{\s*barPosition:\s*BarPosition\.End/.test(content);
  console.log(`是否使用BarPosition.End枚举: ${hasBarPositionEnd ? '是 ✅' : '否 ❌'}`);
  
  // 检查是否不再使用字符串形式的barPosition
  const hasStringBarPosition = /barPosition:\s*'End'/.test(content);
  console.log(`是否使用字符串形式barPosition: ${hasStringBarPosition ? '是 ❌' : '否 ✅'}`);
  
  // 检查所有的changeIndex调用
  const changeIndexCount = (content.match(/this\.tabsController\.changeIndex/g) || []).length;
  console.log(`tabsController.changeIndex调用次数: ${changeIndexCount}`);
  
  // 总结
  console.log('\n=== 总结 ===');
  if (hasImports && hasTabsController && hasBarPositionEnd && !hasStringBarPosition && changeIndexCount >= 4) {
    console.log('所有修复已完成！BarPosition类型错误应已解决。');
    console.log('现在可以尝试构建项目了。');
  } else {
    console.log('还有部分修复未完成。请检查上述标记为❌的项目。');
  }
  
} catch (error) {
  console.error('读取文件时出错:', error.message);
}